Flip flop standard cell

ABSTRACT

A flip flop standard cell that includes a data input terminal configured to receive a data signal, clock input terminal configured to receive a clock signal, a data output terminal, and a latch. A bit write circuit is configured to receive a bit write signal. The received data signal is latched and provided at the output terminal in response to the bit write signal and the clock signal. A hold circuit is configured to receive a hold signal, and the received data signal is not latched and provided at the data output terminal in response to the hold signal and the clock signal.

CROSS-REFERENCE

This application is a continuation of U.S. patent application Ser. No.16/425,123, filed on May 31, 2019, now U.S. Pat. No. 10,951,201, whichclaims the benefit of U.S. Provisional Patent Application No.62/764,735, filed on Aug. 15, 2018, the disclosures of which areincorporated by reference.

BACKGROUND

Integrated circuits typically include thousands of components havingcomplex interrelationships. These circuits are generally designed usinghighly automated processes known as electronic design automation (EDA).EDA begins from a functional specification provided in a hardwaredescription language (HDL) and continues through the specification of acircuit design including the specification of elementary circuitcomponents called cells, the physical arrangement of the cells, and thewiring that interconnects the cells. The cells implement logic or otherelectronic functions using a particular integrated circuit technology.

EDA can be divided into a series of stages such as synthesis, placement,routing, etc. Each of these steps can involve selecting cells from alibrary of cells. Typically, a very large number of different circuitdesigns using various cell combinations can meet a functionalspecification for a circuit. For example, flip flops are fundamentalbuilding blocks of digital circuits and thus are often included instandard cell libraries. A flip flop is a circuit that has two stablestates and can be used to store state information. Flip flops have oneor two outputs and can be made to change state by signals applied to oneor more control inputs.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the present disclosure are best understood from the followingdetailed description when read with the accompanying figures. It isnoted that, in accordance with the standard practice in the industry,various features are not drawn to scale. In fact, the dimensions of thevarious features may be arbitrarily increased or reduced for clarity ofdiscussion.

FIG. 1 is a block diagram illustrating an example of a processing systemin accordance with some embodiments.

FIGS. 2A and 2B are block diagrams illustrating aspects of an exampleflip flop standard cell in accordance with some embodiments.

FIG. 3 is a block diagrams depicting an array of flip flop standardcells in accordance with some embodiments.

FIG. 4 is a circuit diagram illustrating a flip flop standard cell inaccordance with some embodiments.

FIG. 5 is a circuit diagram illustrating an example of a memory deviceincluding an array of the flip flop standard cells shown in FIG. 4 inaccordance with some embodiments.

FIG. 6 is a block diagram illustrating further aspects of the memorydevice of FIG. 5 in accordance with some embodiments.

FIG. 7 is a block diagram illustrating an example of a memory devicewith an array of flip flop standard cells divided into sub-arrays inaccordance with some embodiments.

FIG. 8 is a block diagram illustrating an example of a scan testingarrangement for the disclosed flip flop standard cells in accordancewith some embodiments.

FIG. 9 is a flow diagram illustrating an example of a method foroperating a memory device in accordance with some embodiments.

DETAILED DESCRIPTION

The following disclosure provides many different embodiments, orexamples, for implementing different features of the provided subjectmatter. Specific examples of components and arrangements are describedbelow to simplify the present disclosure. These are, of course, merelyexamples and are not intended to be limiting. For example, the formationof a first feature over or on a second feature in the description thatfollows may include embodiments in which the first and second featuresare formed in direct contact, and may also include embodiments in whichadditional features may be formed between the first and second features,such that the first and second features may not be in direct contact. Inaddition, the present disclosure may repeat reference numerals and/orletters in the various examples. This repetition is for the purpose ofsimplicity and clarity and does not in itself dictate a relationshipbetween the various embodiments and/or configurations discussed.

Further, spatially relative terms, such as “beneath,” “below,” “lower,”“above,” “upper” and the like, may be used herein for ease ofdescription to describe one element or feature's relationship to anotherelement(s) or feature(s) as illustrated in the figures. The spatiallyrelative terms are intended to encompass different orientations of thedevice in use or operation in addition to the orientation depicted inthe figures. The apparatus may be otherwise oriented (rotated 90 degreesor at other orientations) and the spatially relative descriptors usedherein may likewise be interpreted accordingly.

Electronic Design Automation (EDA) tools and methods facilitate thedesign, partition, and placement of microelectronic integrated circuitson a semiconductor substrate. This process typically includes turning abehavioral description of the circuit into a functional description,which is then decomposed into logic functions and mapped into cellsusing a standard cell library. Once mapped, a synthesis is performed toturn the structural design into a physical layout, a clock tree is builtto synchronize the structural elements, and the design is optimized postlayout.

FIG. 1 is a block diagram illustrating an example of a processing system100 in accordance with some embodiments disclosed herein. The processingsystem 100 may be used to implement an EDA system in accordance withvarious processes discussed herein. The processing system 100 includes aprocessing unit 110, such as a desktop computer, a workstation, a laptopcomputer, a dedicated unit customized for a particular application, asmart phone or tablet, etc. The processing system 100 may be equippedwith a display 114 and one or more input/output devices 112, such as amouse, a keyboard, touchscreen, printer, etc. The processing unit 110also includes a central processing unit (CPU) 120, memory 122, a massstorage device 124, a video adapter 126, and an I/O interface 128connected to a bus 130.

The bus 130 may be one or more of any type of several bus architecturesincluding a memory bus or memory controller, a peripheral bus, or videobus. The CPU 120 may comprise any type of electronic data processor, andthe memory 122 may comprise any type of system memory, such as staticrandom access memory (SRAM), dynamic random access memory (DRAM), orread-only memory (ROM).

The mass storage device 124 may comprise any type of storage deviceconfigured to store data, programs, and other information and to makethe data, programs, and other information accessible via the bus 130.The mass storage device 124 may comprise, for example, one or more of ahard disk drive, a magnetic disk drive, an optical disk drive, flashmemory, or the like.

The term computer readable media as used herein may include computerstorage media such as the system memory and storage devices mentionedabove. Computer storage media may include volatile and nonvolatile,removable and non-removable media implemented in any method ortechnology for storage of information, such as computer readableinstructions, data structures, or program modules. The memory 122 andmass storage device 124 are computer storage media examples (e.g.,memory storage). The mass storage device may further store a library ofstandard cells, as will be discussed further herein below.

Computer storage media may include RAM, ROM, electrically erasableread-only memory (EEPROM), flash memory or other memory technology,CD-ROM, digital versatile disks (DVD) or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other article of manufacture which can be usedto store information and which can be accessed by the processing device100. Any such computer storage media may be part of the processingdevice 100. Computer storage media does not include a carrier wave orother propagated or modulated data signal.

Communication media may be embodied by computer readable instructions,data structures, program modules, or other data in a modulated datasignal, such as a carrier wave or other transport mechanism, andincludes any information delivery media. The term “modulated datasignal” may describe a signal that has one or more characteristics setor changed in such a manner as to encode information in the signal. Byway of example, and not limitation, communication media may includewired media such as a wired network or direct-wired connection, andwireless media such as acoustic, radio frequency (RF), infrared, andother wireless media.

The video adapter 126 and the I/O interface 128 provide interfaces tocouple external input and output devices to the processing unit 110. Asillustrated in FIG. 1, examples of input and output devices include thedisplay 114 coupled to the video adapter 126 and the I/O device 112,such as a mouse, keyboard, printer, and the like, coupled to the I/Ointerface 128. Other devices may be coupled to the processing unit 110,and additional or fewer interface cards may be utilized. For example, aserial interface card (not shown) may be used to provide a serialinterface for a printer. The processing unit 110 also may include anetwork interface 140 that may be a wired link to a local area network(LAN) or a wide area network (WAN) 116 and/or a wireless link.

Embodiments of the processing system 100 may include other components.For example, the processing system 100 may include power supplies,cables, a motherboard, removable storage media, cases, and the like.These other components, although not shown, are considered part of theprocessing system 100.

In some examples, software code is executed by the CPU 120 to analyze auser design to create a physical integrated circuit layout. The softwarecode may be accessed by the CPU 120 via the bus 130 from the memory 122,mass storage device 124, or the like, or remotely through the networkinterface 140. Further, in some examples, the physical integratedcircuit layout is created based on a functional integrated circuitdesign, which may be received though the I/O interface 128 and/or storedin the memory 122 or 124 in accordance with various methods andprocesses implemented by the software code.

A standard cell can include an entire device, such as a transistor,diode, capacitor, resistor, or inductor, or can include a group ofseveral devices arranged to achieve some particular function, such as aninverter, a flip flop, a memory cell, or an amplifier, among others. Inaddition to making functional design easier to conceptualize, the use ofstandard cells can reduce verification time for design rule checking(DRC) of the layout features within the IC, because a standard cell thatis repeated throughout the layout can be checked a single time in DRCrather than each instantiation being checked individually. Based on thereceived functional circuit description, the system 100 is configured toselect standard cells from the cell library. As noted above, flip flopsmay be included in a standard cell library. A flip flop is a circuitthat has two stable states and thereby is capable of serving as one bitof memory. A flip flop is usually controlled by one or two controlsignals and a clock signal.

Memory for IC devices may be constructed using several differentmethods. For example, a full custom static random access memory (SRAM)or register file array may be designed and instantiated in a design as ablack box. This full custom block can have any functionality desired(such as bit write capability), but the necessary design work can becomplicated and time consuming. In addition, a section of the designmust be blocked off to insert the “black box” array. This blocked offsection restricts routing on certain layers and often requires a“keep-out” region that blocks the placement of normal standard cellsnear it. Thus, such black-box designs can make inefficient use ofavailable area.

For small arrays, a memory array may be synthesized flip flop standardcells. Flip flops are typically larger than SRAM bit cells, but theoverall array may be smaller since the overhead associated with a customSRAM array is not required. In addition, the design effort needed for asynthesized array is less. A compromise between the full custom,black-box arrays and simple synthesis with flops is building an array ofusing flip flop standard cells. This array uses the same standard cellflops as the synthesis approach, but the cells are carefully placed inan array-like fashion. This allows for higher cell utilization thansynthesis, while still using standard cells that do not require overheadsuch as keep-out regions. For example, typical synthesis usually hasutilizations in the range of 70-80%, but by hand placing the flops in astandard cell array, that utilization can be improved to 90-95%.However, the actual cells used are still restricted to what is availablein the standard cell library, which still limits the area density.

FIG. 2A illustrates a flip flop standard cell 200 in accordance withaspects of the present disclosure. The flip flop standard cell 200 has adata input terminal D configured to receive a data signal, clock inputterminal configured to receive a clock signal, and an output terminal Qproviding a data output signal. As will be discussed further below, theflip flop standard cell 200 includes a latch that receives, for example,the signal received at the input terminal D and outputs the latchedsignal to the Q output terminal.

Since the illustrated flip flop standard cell 200 is configured forforming bit cells in a memory array, the flip flop standard cell 200further includes a bit write terminal BITWR configured to receive awrite signal, which indicates that the received data signal is to belatched and provided at the output terminal Q in response to the clocksignal CLK. Additionally, a hold terminal HOLD is configured to receivea hold signal, which indicates a first, or current data value at thedata outputs Q is continued to be latched and thus held, rather thanlatching and outputting the received data signal to the output Q, evenwhen the clock signal pulses.

Typical flip flop standard cells do not include bit write or holdfunctionality native thereto. Instead, additional circuitry external tothe flip flop standard cell is required to perform these functions whenan array is constructed with typical flip flop standard cells. Theadditional circuits required for this functionality can take upsubstantial floor plan space. Consistent with the present disclosure,the illustrated flip flop standard cell 200 is configured forconstructing a memory array. Integrating functions such as bit write andhold with the flip flop standard cell 200 itself reduces power usage andsaves space.

In some embodiments, the flip flop standard cell 200 is a scan flipflop. A scan flip flop facilitates testing processes for interconnectedflip flops, for example, to determine if an error is propagated alongthe chain of flip flops during a scan shifting mode of operation. Anoutput of the scan flip flop is therefore coupled with an input of anadjacent scan flip flop in the chain. The flip flop standard cell 200thus includes a scan input terminal SI and a scan enable terminal SE.Based on the received scan enable signal, either the data input terminalD or the scan input terminal SI is connected to the latch of the flipflop standard cell 200 and provided at the output terminal Q.

As noted above, the flip flop standard cell 200 is configured for use ina memory array. Thus, certain functions and signals are not required tobe received or generated by every flip flop standard cell 200 of thearray. FIG. 2B illustrates further aspects of the flip flop standardcell 200. Typically, a flip flop receives a clock pulse and generates aninverted clock signal with a buffer circuit local to the flip flopstandard cell. In the example shown in FIG. 2B, a clock buffer 204external to the flip flop standard cell 200 receives a clock pulse, andoutputs the clock signal CLK and also the inverted clock signal CLK_b.The illustrated flip flop standard cell 200 thus receives the clocksignal CLK and the clock bar signal CLK_b generated external to the flipflop standard cell 200. Since the flip flop standard cells 200 forming amemory array typically operate on a common clock signal, it is notnecessary for each flip flop standard cell 200 of the array to include aclock buffer to generate the CLK_b signal.

Similarly, the scan function is used for testing a chain of flip flops.Thus, each of the flip flops in the chain typically receives a commonscan enable signal. It is therefore not necessary for each flip flopcell to include circuitry to generate the logically inverted scan enablesignal SE_b. Instead, the scan enable signal SE is received by aninverter 206 external to the flip flop standard cell 200 that outputsthe SE_b signal, further saving space and power on the flip flopstandard cell 200.

FIG. 3 is a block diagram illustrating aspects of an example memorydevice 300 that includes a bit cell array 302 made up of a plurality ofthe flip flop standard cells 200. As noted above, each of the flip flopstandard cells 200 has a master latch 310 and a slave latch 312, and aninput section 320 that includes bit write and hold circuits 314. In theexample array 302, the flip flop standard cells 200 are arranged incolumns and rows. The array 302 can be sized based on the desired memorycapacity. FIG. 3 illustrates a 2×3 array for ease of discussion, thoughother array sizes may be utilized depending on the required conditionsfor the desired memory capacity and are within the scope of thisdisclosure. A clock buffer 204 and SE inverter 206 each provide outputsto a plurality of the flip flop standard cells 200. In some examples,the clock buffer 204 may provide the clock signal CLK and the invertedclock bar signal CLK_b to the connected flip flop standard cells 200based on a received clock pulse. The SE inverter 206 provides theinverted scan enable signal SE_b to each of the connected flip flopstandard cells 200. In the example shown in FIG. 3, the illustratedfirst and second rows 304, 306 of the array 302 each have a respectiveclock buffer 204 and SE inverter 206 providing signals to each of theflip flop standard cells 200 in the respective rows 304, 306. In thismanner, the flip flop standard cells 200 in each row 302, 304 areconfigured to share the clock and SE_b signals with the plurality ofother flip flop standard cells 200 in their row of the array 302. Sincethe clock buffers 204 and SE inverters 206 are shared among a pluralityof the flip flop standard cells 200, a denser array packing may beachieved, while reducing the array power requirements.

Consistent with aspects of the disclosure, the memory device 300achieves further efficiencies by sharing of transistors of the variouscircuit elements of the memory array 302. For instance, redundanttransistors and their functions are moved from the individual flip flopstandard cells 200 to the array level of the device 300 and shared amongthe plurality of flip flop standard cells 200.

Referring now to FIG. 4, a circuit diagram of an example of the flipflop standard cell 200 is illustrated. The flip flop standard cell 200has a plurality of input terminals including a hold bar terminal 402configured to receive a hold bar signal HOLD_b (logically inverted holdsignal HOLD), a scan input terminal 404 configured to receive a scandata signal SI, a scan enable bar terminal 406 configured to receive ascan enable bar signal SE_b (logically inverted scan enable signal SE),a data input terminal 408 configured to receive a data input signal D, abit write bar terminal 410 configured to receive a bit write bar signalBITWR_b (logically inverted bit write signal BITWR), a clock terminal412 configured to receive a clock signal CLK, a clock bar terminal 414configured to receive a clock bar signal CLK_b (logically inverted clocksignal CLK), a bit write terminal 416 configured to receive the bitwrite signal BITWR, a scan enable terminal 418 configured to receive thescan enable signal SE, and a hold terminal 420 configured to receive thehold signal HOLD. A data output terminal 466 is configured to output thedata signal Q.

The flip flop standard cell 200 includes a master latch 310 and a slavelatch 312, and an input stage 320 that includes the bit write and holdcircuits 314. The master latch 310 is coupled to an output node 321 ofthe input stage 320 and the slave latch 312 is coupled to the output ofthe master latch 310. As noted above, the flip flop standard cell 200does not include an on-board clock buffer, but instead receives theclock signal CLK and the logically inverted clock bar signal CLK_b atthe terminals 412, 414. The clock signals CLK, CLK_b controltransmission gates within the master and slave latches 310, 312 and theinput stage 320. The input terminals 412, 414 receiving the clock andclock bar signals CLK, CLK_b are respectively connected to gateterminals of a PMOS clock transistor 428 and an NMOS clock transistor430. The junction of the clock transistors 428 and 430 form the outputnode 321, which is the input to the master latch 310. The inputterminals of the clock transistors 428, 430 receive the output of thehold transistors 422, 436 and the scan enable transistors 424, 434 suchthat the scan input terminal 404 or the data output terminal 466 iscoupled to the output node 321 of the input stage 320 in response to theclock signals CLK, CLK_b.

The flip flop standard cell 200 receives the scan enable signal SE atthe input terminal 418 to selectively select the scan function to testthe flip flop standard cells 200 in an array. However, as noted above,the flip flop standard cell 200 does not include an on-board inverterfor providing the logically inverted scan enable bar signal SE_b.Instead, the inverted scan enable bar signal SE_b is generated externalto the flip flop standard cell 200 and received at the input terminal406, reducing the number of transistors required for the flip flopstandard cell 200 itself.

The scan input terminal 404 is coupled to input terminals of the scanenable transistors 424, 434, such that the scan enable signals SE, SE_breceived at the input terminals 406, 418 control the scan transistors424, 434, respectively to selectively activate the scan test mode of theflip flop standard cell 200. In the scan mode, the scan input signal SIis provided to the clock transistors 428, 430 in response to the scanenable signals SE, SE_b. In this manner, the scan input signal isselectively provided to the master latch 310 based on the scan enablesignals SE, SE_b and the clock signals CLK, CLK_b.

The input stage 320 includes a bit write circuit having a pair of bitwrite transistors 426, 432, and a hold circuit having a pair of holdtransistors 422, 436. The bit write and hold circuits are configured tocontrol the writing of data and the holding of data on the flip flopstandard cell 200. The PMOS hold transistor 422 is controlled by thehold bar signal HOLD_b received at the input terminal 402 connected tothe gate of the PMOS hold transistor 422, and the NMOS hold transistor436 is controlled by the hold signal HOLD received at the input terminal420 connected to the gate of the NMOS hold transistor 436.

The output signal Q is connected to input terminals of the holdtransistors 422, 436, and the output terminals of the hold transistors422, 436 are connected to the output node 321 via the clock transistors428, 430, such that the flip flop standard cell 200 output Q is fed backfrom the data output terminal 466 to the master latch 310 based on thehold and clock input signals. More specifically, when the hold signalHOLD is high and the inverted hold bar signal HOLD_b is low, the outputsignal Q is fed back to the input stage 320 when the clock pulses, suchthat a first data signal is held on the flip flop standard cell 200.Accordingly, a second data input signal D received at the input terminal408 is not written (latched) to the flip flop standard cell 200, evenwhen the clock signal pulses if the hold signal HOLD is high and theinverted hold bar signal HOLD_b is low.

The bit write bar BITWR_b and bit write BITWR signals received at therespective input terminals 410 and 416 control the operation of the PMOSbit write transistor 426 and the NMOS bit write transistor 432,respectively. The data input terminal 408 is coupled to the inputterminals of the bit write transistors 426 and 432, such that the datasignal D received by the terminal 408 is selectively received by theinput stage 320 based on the bit write and bit write bar BITWR, BITWR_bsignals. For instance, a high bit write signal BITWR (and inverted lowbit write bar signal BITWR_b) allows the data signal D received at theinput terminal 408 to be written to the flip flop standard cell 200based on the clock signals CLK, CLK_b.

The output node 321 is coupled to the master latch 310, which includes afirst inverter comprised of PMOS and NMOS transistors 438, 440 and afirst tri-state inverter that includes PMOS and NMOS transistors 442,440 and control PMOS and NMOS transistors 444, 446. When the clocksignal CLK is high (clock bar signal CLK_b is low) the input of thetri-state inverter is inverted and output to latch the received signal.When the clock signal CLK is low (clock bar signal CLK_b is high) thetri-state inverter is in a high impedance state, and is essentiallydisconnected from the circuit.

A transmission gate comprised of a PMOS transistor 450 and an NMOStransistor 452 is connected between the master latch 310 and the slavelatch 312. The PMOS transistor 450 and the NMOS transistor 452 of thetransmission gate respectively receive the clock bar CLK_b and clock CLKsignals. Thus, when the clock signal CLK is high (clock bar signal CLK_bis low) the transmission gate transistors 450, 452 are active and theoutput signal from the master latch 310 is transmitted to the slavelatch 312.

The slave latch 312 includes a second inverter comprised of PMOS andNMOS transistors 462, 464 and a second tri-state inverter that includesPMOS and NMOS transistors 454, 460 and control PMOS and NMOS transistors456, 458, such that the signal received from the master latch 310 islatched and output by the slave latch 312 in response to the clocksignal. The output signal Q of the slave latch 312 is provided at theoutput terminal 466.

FIG. 5 illustrates an example memory device 500 with an array 502 of theflip flop standard cells 200. The illustrated example has flip flopstandard cells 200 arranged in a 3×3 array, but other array sizes arewithin the scope of the disclosure. Accordingly, the memory device 500includes three columns 504 a, 504 b, 504 c for storing three bits ofdata Bit0, Bit1, Bit2, as well as three rows 506 a, 506 b, 506 c. Sincedisclosed examples of the flip flop standard cell 200 are configured foruse in a memory array, certain components of a typical flip flop are notincluded with the flip flop cell. Certain logic components that generatethe signals for controlling the flip flop standard cells 200 of thearray 500 such as the clock buffer and scan enable inverter are providedoutside the flip flop standard cells 200.

A plurality of row drivers 512 a, 512 b, 512 c (collectively row drivers512) are connected to each flip flop standard cell 200 of the respectiverow 506 a, 506 b, 506 c of flip flop standard cells 200. The row drivers512 each include a respective OR gate 514 a, 514 b, 514 c (collectivelyOR gates 514) that receive respective write word line signals ww10,ww11, ww12 (collectively write word line signals ww1) corresponding tothe rows 506 a, 506 b, 506 c of the array 502, as well as the scanenable signal SE. The row drivers 512 each further include a respectiveAND gate 516 a, 516 b, 516 c (collectively AND gates 516) that receivethe respective outputs of OR gates 514 a, 514 b, 514 c and a clock pulseCP. Thus, when the scan mode is selected, the scan enable signal SE goeshigh, resulting in the output of the AND gates 516 alternating with thereceived clock pulse CP to provide the clock signals CLK0, CLK1, CLK2for the respective rows 506 a, 506 b, 506 c of the array 502. Each rowdriver 512 also includes a respective inverter 518 a, 518 b, 518 c(collectively inverters 518) that invert the CLK signal output by theAND gates 516 to provide the clock bar signals CLK0_b, CLK1_b, CLK2_b toeach of the flip flop standard cells 200 of the array 502 from a sourceexternal to the array 502.

When the memory device 500 is operated in a normal mode (i.e. not thescan mode), the scan enable signal SE is low. In a write operation, thedesired row 512 is selected by asserting the appropriate write word linesignal ww10, ww11, or ww12. In the illustrated example, the write wordline signals ww1 are “one-hot”—in other words, only one word line or rowis active in any given cycle, and thus only one of the write word linesignals ww1 is activated per cycle. For example, if the first row 512 aof the array 502 is to be selected, the first write word line signalww10 goes high.

Thus, the OR gate 514 a of the first row 512 a outputs a high signalthat is received by the AND gate 516 a of the first row 512 a, theoutput of which alternates in accordance with the clock pulse CP. Thealternating output of the AND gate 516 a of the selected first row 512 ais inverted by the inverter 518 a, such that the clock and clock barsignals CLK, CLK_b are provided to the flip flop standard cells 200 ofthe first row 506 a of the array 502.

In contrast, the remaining write word line signals ww11, ww12 are at alogic low. The OR gates 514 of the non-selected rows 512 b, 512 c outputa logic low signal based on the received logic low write word linesignals ww11, ww12, as well as the low scan enable signal SE. Therefore,the outputs of the AND gates 516 of the non-selected rows 512 b, 512 care held low, even when the clock pulse CP pulses.

The memory device 500 further includes a column driver 520 a, 520 b, 520c (collectively column drivers 520) for each of the columns 504 a, 504b, 504 c of the array 502. Each of the column drivers 520 a, 520 b, 520c has a first AND gate 522 a, 522 b, 522 c (collectively first AND gates522), and second AND gates 524 a, 524 b, 524 c (collectively second ANDgates 524) that respectively output the hold HOLD and bit write BITWRsignals for their corresponding column 504 a, 504 b, 504 c. The outputsignals of the first and second AND gates 522, 524 are also received byrespective first inverters 526 a, 526 b, 526 c (collectively firstinverters 526) and second inverters 528 a, 528 b, 528 c (collectivelysecond inverters 528) to generate the hold bar HOLD_b and bit write barBITWR_b signals. The first and second AND gates 522, 524 each receivethe scan enable bar signal SE_b (inverted scan enable signal SE). Thefirst and second AND gates 522, 524 each receive a corresponding columnselect, or bit enable signal BIT_EN which functions to select thedesired column for read/write operations. The first AND gates 522 eachreceive an inverted bit enable signal BIT_EN, while the second AND gates524 each receive the bit enable signal BIT_EN. Since the inputs to thefirst AND gates 522 are both inverted, the first AND gates function asnegative AND gates.

When the scan mode is selected, the scan enable signal SE goes high.Each of the first and second AND gates 522, 524 invert the received scanenable signal SE, such that the first AND gates 522 effectively receivethe scan enable bar signal SE_b. The high scan enable signal SE (lowscan enable bar signal SE_b) received by the AND gates 522, 524 resultsin all of their outputs being low. Accordingly, the bit write BITWR andhold signals HOLD are all low (BITWR_b and HOLD_b are high), resultingin neither the data received at the data input terminal 408 beingwritten to the flip flop standard cell 200 nor the output signal Q atthe output terminal 466 being fed back to the flip flop standard cell200. Instead, the scan data input receive at the scan input terminal 404is input to the flip flop standard cells 200 of the array 502.

In the normal operation mode (not the scan mode), the scan enable signalSE is low. This allows generating the appropriate hold and bit writesignals for the selected columns 504 of the array 502. For example, if adata value is to be written to the first column 504 a, the correspondingbit enable signal BIT_EN0 goes high. Thus, the first AND gate 522 areceives the inverted low scan enable signal SE and the inverted highbit enable signal BIT_EN0, resulting in a low output from the first ANDgate 522 a. The low output of the first AND gate 522 a translates to alow hold signal HOLD0 for the first column 504 a, such that the currentoutput signal Q is not fed back from the data output terminal 466 andheld by the selected flip flop standard cell 200. The first AND gates522 b, 522 c of the non-selected columns 504 b, 504 c each receiveinverted low bit enable signals BIT_EN1, BIT_EN2, resulting in the firstAND gates 522 b, 522 c each providing a high hold signal HOLD1, HOLD2.Thus, the flip flop standard cells 200 of the non-selected columns 504b, 504 c each hold their current data values rather than writing areceived data input signal.

The second AND gate 524 a of the selected column 504 a also receives andinverts the low scan enable signal SE. The second AND gate 524 a furtherreceives the high bit enable signal BIT_EN0, and therefore outputs ahigh bit write signal BITWR0. The high bit write signal BITWR0 receivedat the bit write terminal 416 (and low bit write bar BITWR_b signalreceived at terminal 410) allow a data input signal D received at thedata input terminal 408 to be latched by the flip flop standard cell 200of the selected columns 504 a.

As shown in the example of FIG. 5, data input signals D0, D1, D2(collectively data signals D) are coupled to the input terminals 408 ofthe flip flop standard cells 200 of the respective columns 504 a, 504 b,504 c. The data signals D0, D1, D2 may be coupled to the appropriateflip flop standard cells 200 via a buffer circuit 530 that includes, forexample, two series-connected inverters. Thus, data signal D0 for theselected first column 504 a would be latched by the flip flop standardcell 200 based on the low hold signal HOLD0 and the high bit writesignal BITWR0.

FIG. 6 is a block diagram illustrating further components that may beassociated with the memory device 500 of FIG. 5. In the illustratedexample, a write decoder 606 configured to decode the supplied writeaddress 604 may provide output signals to the rows drivers 512 of thearray 502. The write decoder 606 may supply the array 500 with the writeword line signals ww10, ww11, ww12 discussed in conjunction with FIG. 5.Control signals 602 as well as the data in 612 and the bit write mask614 may further be provided into the array. A read decoder 610 isconfigured to decode a supplied read address 608 and may send thedecoded address to a read multiplexers 616 that combines the signalsoutput from the array to provide a data output 618.

FIG. 7 depicts an example implementation of an array 700 of flip flopstandard cells 200 in which the memory array 700 is segmented into foursub-arrays 701, 702, 703, 704. As noted above, the flip flop standardcells 200 are configured for use in memory arrays such as the sub-arrays701-704 and as such, certain signals and circuitry is provided at thearray level rather than incorporated into the flip flop standard cell200. In an arrangement such as the array 700 shown in FIG. 7, thearray-level functionality may be positioned between the sub-arrays701-704.

Thus, the row drivers 512 that receive signals such as the write wordline and clock pulse signals and generate the clock signals shown inFIG. 5 are positioned centrally with the sub-arrays 701 and 703 on onelateral side of the row drivers 512, and the sub-arrays 702 and 704 onthe other lateral side of the row drivers 512.

Similarly, the column drivers 520 that receive the bit enable signalsand generate the bit write and hold signals as shown in FIG. 5 arepositioned centrally with the sub-arrays 702 and 702 above the columndrivers 520 and the sub-arrays 703 and 704 below the column drivers 520.This “butterfly” floor plan minimizes routing distance for the signalsgenerated at the array level, thus improving speed and also reducingpower consumption.

FIG. 8 is a block diagram depicting full scan functionality 800 of thedisclosed flip flop standard cells 200. FIG. 8 illustrates how the flipflop standard cells 200 may be connected with the data output terminal Qof one flip flop standard cell 200 connected to the scan data input SIof the next flip flop standard cell 200. This allows for an entire arrayof the flip flop standard cells 200 to employ a scan-based testingmethodology such as Automatic Test Pattern Generation (ATPG). Further,the scan arrangement shown in FIG. 8 may eliminate the need for morecostly testing arrangements such as Built-In Self-Test (BIST), whichrequires additional outside logic incorporated into the memory array.Chaining the flip flop standard cells 200 together as shown in FIG. 8may allow for testing access to the entirety of the array of flip flopstandard cells 200.

FIG. 9 generally illustrates an example of a method 900 for operating amemory device, such as the memory device illustrated in FIG. 5 discussedabove. The process starts at an operation 902 where a plurality of flipflop standard cells are provided. In some examples, the flip flopstandard cells 200 shown in FIG. 4 may be provided in operation 902. Asnoted above, each of the flip flop standard cells 200 may include a datainput terminal, a hold terminal, and a clock terminal, for example. Atan operation 904, a first data signal is latched into each of theplurality of flip flop standard cells. Referring again to FIG. 4, thefirst data signal may be a data signal D received at the input terminal408 and latched by the master and slave latches 310, 312 for output atthe output terminal 466.

At an operation 906, a clock signal and an inverted clock signal areprovided to the clock input terminal of each of the plurality of flipflop standard cells. As noted above, since the flip flop standard cells200 are configured for a memory array, an external clock buffer providesthe clock signal CLK as well as the inverted clock bar signal CLK_bar toeach of a plurality of the flip flop standard cells 200. In contrast,typical flip flop cells would receive a clock pulse and then generatethe clock and clock bar signals using a buffer integrated with the flipflop cell.

At an operation 908, a hold signal is sent to the hold terminal of eachof the plurality of flip flop standard cells 200. As noted above, whenthe hold signal HOLD is asserted, the current data signal is held by theflip flop standard cell 200 rather than writing a received data signalto the flip flop standard cell 200. Accordingly, in an operation 910, asecond data signal is received at the data input terminal of each of theflip flop standard cells, but based on the received hold signal inoperation 908, the first data signal is held or continued to be latchedinto each of the plurality of flip flop standard cells in operation 912,rather than latching the received second data signal.

At an operation 914, a bit write signal is sent to the bit writeterminal of each of the plurality of flip flop standard cells. Asdiscussed above, when the bit write signal is asserted, a data signal Dreceived at the input terminal is written or latched by the flip flopstandard cells 200. Thus, at operation 916, the received second datasignal is latched into each of the plurality of flip flop standard cellsin response to the bit write signal.

Aspects of the present disclosure may provide a flip flop standard cellthat reduces the number of required transistors, which may result inlower power consumption as well as a smaller cell area. The smaller areaallows for more densely packed memory arrays, in turn reducing therouting distance for the critical flip flop signals thus increasing thespeed of the device. Additionally, the clocking power is reduced sinceaspects of the clocking of the array are designed into the floorplan ofthe flip flop standard cell.

Some enclosed embodiments may provide a flip flop standard cell thatincludes a data input terminal configured to receive a data signal,clock input terminal configured to receive a clock signal, a data outputterminal, and a latch. Additionally, a bit write circuit is configuredto receive a bit write signal. The received data signal is latched andprovided at the output terminal in response to the bit write signal andthe clock signal. A hold circuit is configured to receive a hold signal,and the received data signal is not latched and provided at the dataoutput terminal in response to the hold signal and the clock signal.

In accordance with further aspects of the disclosure, a memory deviceincludes a plurality of flip flop standard cells. Each of the flip flopstandard cells has a data input terminal, a clock input terminal, a bitwrite terminal, and a data output terminal. A first driver circuit isconfigured to output a clock signal and an inverted clock signal to theclock input terminal of each of the plurality of flip flop standardcells. A second driver circuit is configured to output a bit writesignal to the bit write terminal of each of the plurality of flip flopstandard cells. Each of the plurality of flip flop standard cells isconfigured to latch a first data signal received at the data inputterminal in response to the received clock and bit write signals.

In accordance with other aspects of the disclosure, a method includesproviding a plurality of flip flop standard cells, each of which has adata input terminal, a hold terminal, and a clock terminal. A first datasignal is latched into each of the plurality of flip flop standardcells. A clock signal and an inverted clock signal are sent to the clockinput terminal of each of the plurality of flip flop standard cells. Ahold signal is sent to the hold terminal of each of the plurality offlip flop standard cells. A second data signal is received at the datainput terminal of each of the flip flop standard cells, and in responseto the hold signal, the first data signal is held or latched into eachof the plurality of flip flop standard cells, rather than the receivedsecond data signal.

This disclosure outlines various embodiments so that those skilled inthe art may better understand the aspects of the present disclosure.Those skilled in the art should appreciate that they may readily use thepresent disclosure as a basis for designing or modifying other processesand structures for carrying out the same purposes and/or achieving thesame advantages of the embodiments introduced herein. Those skilled inthe art should also realize that such equivalent constructions do notdepart from the spirit and scope of the present disclosure, and thatthey may make various changes, substitutions, and alterations hereinwithout departing from the spirit and scope of the present disclosure.

What is claimed is:
 1. A flip flop standard cell, comprising: a datainput terminal; clock input terminal configured to receive a clocksignal; a data output terminal; a latch; a bit write circuit configuredto receive a bit write signal, wherein the received data signal islatched and provided at an output terminal in response to the bit writesignal and the clock signal; and a hold circuit configured to receive ahold signal, wherein the received data signal is not latched andprovided at the data output terminal in response to the hold signal andthe clock signal; a scan input terminal configured to receive a scandata signal; and a scan enable terminal configured to receive a scanenable signal, wherein a received data signal is not provided at thedata output terminal, and the scan data signal is provided at the outputterminal in response to the scan input signal and the clock signal. 2.The flip flop standard cell of claim 1, further comprising a clock barterminal configured to receive an inverted clock signal generatedexternal to the flip flop standard cell.
 3. The flip flop standard cellof claim 1, wherein the latch includes a master latch and a slave latch.4. The flip flop standard cell of claim 1, further comprising a scanenable bar terminal configured to receive an inverted scan enable signalgenerated external to the flip flop standard cell.
 5. The flip flopstandard cell of claim 4, further comprising a scan enable transistorhaving a gate terminal, an input terminal, and an output terminal,wherein the gate terminal is connected to the scan enable terminal, theinput terminal is connected to the scan input terminal, and the outputterminal is connected to the latch, such that the scan data signalreceived at the scan input terminal is output to the latch in responseto the scan enable signal received at the scan enable terminal.
 6. Theflip flop standard cell of claim 1, wherein the bit write circuitincludes a bit write transistor having a gate terminal, an inputterminal, and an output terminal, wherein the gate terminal is connectedto the bit write terminal, the input terminal is connected to the datainput terminal, and the output terminal is connected to the latch, suchthat the received data signal is output to the latch in response to thebit write signal received at the bit write terminal.
 7. The flip flopstandard cell of claim 1, wherein the hold circuit includes a holdtransistor having a gate terminal, an input terminal, and an outputterminal, wherein the gate terminal is connected to a hold terminal ofthe flip flop standard cell, the input terminal is connected to the dataoutput terminal, and the output terminal is connected to the latch, suchthat an output data signal at the data output terminal is fed back tothe latch in response to the hold signal received at the hold terminal.8. A memory device, comprising: a plurality of flip flop standard cells,each including a data input terminal, a clock input terminal, a bitwrite terminal, and a data output terminal; the clock input terminal ofeach of the plurality of flip flop standard cells configured to receivea clock signal and an inverted clock signal; the bit write terminal ofeach of the plurality of flip flop standard cells configured to receivea bit write signal; the data input terminal of each of the plurality offlip flop standard cells configured to receive a first data signal; andwherein each of the plurality of flip flop standard cells is configuredto latch the first data signal in response to the received clock and bitwrite signals.
 9. The memory device of claim 8, further comprising: afirst driver circuit configured to output the clock signal and theinverted clock signal to the clock input terminal of each of theplurality of flip flop standard cells.
 10. The memory device of claim 8,further comprising: a second driver circuit configured to output the bitwrite signal to the bit write terminal of each of the plurality of flipflop standard cells.
 11. The memory device of claim 10, wherein: each ofthe plurality of flip flop standard cells further comprises a holdterminal; the second driver circuit is configured to output a holdsignal to the hold terminal of each of the plurality of flip flopstandard cells; and each of the plurality of flip flop standard cells isconfigured to continue to latch the first data signal and not latch asecond data signal received at the data input terminal in response tothe received clock and hold signals.
 12. The memory device of claim 9,wherein the plurality of flip flop standard cells are arranged in anarray including at least one word line, and wherein the first drivercircuit is further configured to output the clock signal and theinverted clock signal to the clock input terminal of each of theplurality of flip flop standard cells in response to a word line selectsignal.
 13. The memory device of claim 8, wherein the plurality of flipflop standard cells each include a scan input terminal configured toreceive a scan data signal, a scan enable terminal configured to receivea scan enable signal, and scan enable bar terminal configured to receivean inverted scan enable signal.
 14. The memory device of claim 13,further comprising an inverter configured to receive the scan enablesignal and output the inverted scan enable signal to the scan enable barterminal of each of the plurality of flip flop standard cells.
 15. Thememory device of claim 9, wherein the plurality of flip flop standardcells are arranged in an array including a plurality of word lines, andwherein the first driver circuit is further configured to pulse theclock signal and the inverted clock signal in response to a receivedclock pulse to only a first word line of the plurality of word lines inresponse to a word line select signal.
 16. A method, comprising:providing a flip flop standard cell; receiving a data signal on an inputterminal of the flip flop standard cell; receiving a clock signal at aclock input terminal of the flip flop standard cell; receiving a bitwrite signal at a bit write terminal of the flip flop standard cell; inresponse to the bit write signal and the clock signal, latching thereceived data signal and providing the received data signal at an outputterminal of the flip flop standard cell; receiving a hold signal at ahold terminal of the flip flop standard cell; in response to the holdsignal and the clock signal, not latching the received data signal andnot providing the received data signal at a data output terminal of theflip flop standard cell; receiving a scan data signal at a scan inputterminal of the flip flop standard cell; receive a scan enable signal ata scan enable terminal of the flip flop standard cell; in response tothe scan input signal and the clock signal, providing the scan datasignal at the output terminal and not providing received data signal atthe at the data output terminal.
 17. The method of claim 16, furthercomprising: inverting the scan enable signal externally to the flip flopstandard cell; and receiving the scan enable signal at the scan enableterminal of the flip flop standard cell receiving the inverted scanenable signal at a scan enable bar terminal of the flip flop standardcell.
 18. The method of claim 16, further comprising: receiving a clockpulse by a clock buffer external to the flip flop standard cell;generating the clock signal and a clock bar signal by the clock buffer;receiving the clock signal at the clock input terminal of the flip flopstandard cell; and receiving the clock bar signal at a clock bar inputterminal of the flip flop standard cell.
 19. The method of claim 18,further comprising: generating the bit write signal by a driver circuitexternal to the flip flop standard cell; receiving the bit write signalat the bit write terminal of the flip flop standard cell.
 20. The methodof claim 18, further comprising: generating the hold signal by a drivercircuit external to the flip flop standard cell; receiving the holdsignal at the hold terminal of the flip flop standard cell.